home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d21
/
dvglue10.arc
/
TVAPI.H
< prev
next >
Wrap
C/C++ Source or Header
|
1988-08-13
|
24KB
|
599 lines
/*
** TVAPI.H - types and function prototypes.
** IBM Personal Computer - TopView C Interface Header File.
** Written for Borland Turbo C v1.5.
*/
#include <alloc.h>
#include <dos.h>
#define DVGLUE_version 100
#define DVGLUE_versionSTR "1.00"
#ifdef __TURBOC__
# define PASCAL /* we support the pascal calling conventions */
#else
/*# define PASCAL */ /* uncomment if pascal calling convention supported */
#endif __TURBOC__
#ifndef PASCAL
# define pascal
#endif PASCAL
/***********************************************************/
typedef unsigned char BYTE; /* 8-bit value */
typedef signed char SBYTE; /* 8-bit signed value */
typedef unsigned short WORD; /* 16-bit value */
typedef unsigned long DWORD; /* 32-bit value */
typedef void far *OBJECT; /* object handle */
#define OBJSEG FP_SEG /* we often need only the segment of obj handle */
#define MK_OBJ(seg) (OBJECT)MK_FP(seg,0) /* sometimes have to build an obj handle */
/***********************************************************/
/* functions that are implemented inline */
/***********************************************************/
#define TVpause() _AX = 0x1000, geninterrupt(0x15)
#define TVostack() _AX = 0x101A, geninterrupt(0x15)
#define TVbegincrit() _AX = 0x101B, geninterrupt(0x15)
#define TVendcrit() _AX = 0x101C, geninterrupt(0x15)
#define TVustack() _AX = 0x1025, geninterrupt(0x15)
#define DVenable() _AX = 0x110F, geninterrupt(0x15)
/***********************************************************/
/* functions that are just aliases of others */
/***********************************************************/
#define TVwin_hcur(handle) TVputchar(handle,0,0)
#define TVwin_blanks(win,count) TVwin_repchar(win,' ',count)
#define TVnosound() TVsound(0,0)
#define TVunlock TVmbx_close
#define TVpanel_free _TV_object_free
#define TVptr_free _TV_object_free
#define TVtimer_free _TV_object_free
#define TVpanel_close _TV_object_close
#define TVptr_close _TV_object_close
#define TVtimer_close _TV_object_close
/***********************************************************/
/* functions that need to override default library funcs */
/***********************************************************/
#define malloc _TV_malloc
#define calloc _TV_calloc
#define realloc _TV_realloc
#define free _TV_free
/***********************************************************/
/* Manifest constants for TVposwin() */
/***********************************************************/
/* select a horizontal position ... */
#define PW_HCURR 0
#define PW_HCENTER 1
#define PW_LEFT 2
#define PW_RIGHT 3
/* ... and a vertical position by ORing them together */
#define PW_VCURR 0
#define PW_VCENTER 4
#define PW_TOP 8
#define PW_BOTTOM 12
/* optionally, choose not to refresh the screen right away */
#define PW_NOREDRAW 16
/***********************************************************/
/* Constants for TVkbd_setflags() & TVkbd_clrflags() */
/***********************************************************/
#define KBD_FIELDMODE 1
#define KBD_ACTIVE 2
#define KBD_INSERT 4
#define KBD_CONCURRENT 8
#define KBD_FILTERALL 16
/***********************************************************/
/* Constants for TVptr_setflags() & TVptr_clrflags() */
/***********************************************************/
#define PTR_BUTTON 1
#define PTR_RELEASE 4
#define PTR_ABSOLUTE 8
#define PTR_SLOWCLICK 16
#define PTR_NOTFORE 32
#define PTR_NOTTOP 64
#define PTR_HIDDEN 0x80
/* bits to check for 'button_state' field of POINTER_MSG type */
#define BUTTON_PRESS 0x80
#define BUTTON_RELEASE 0x40
#define BUTTON_LEFT 1
#define BUTTON_RIGHT 2
/***********************************************************/
/* Constants for TVwin_scroll() and TVfld_scroll() */
/***********************************************************/
#define SCRL_UP 0
#define SCRL_DOWN 1
#define SCRL_LEFT 2
#define SCRL_RIGHT 3
/***********************************************************/
/* Constants for TVfld_build_header() and type FT_HEADER */
/***********************************************************/
/* screen types (OR together to get desired behavior) */
#define F_NOREAD 0
#define F_READARRAY 1
#define F_READALL 2
#define F_READNEW 3
/* the above are mutually exclusive */
#define F_NOFLAGS 8
#define F_RIGHTBUTTON 0x10
#define F_LEFTBUTTON 0x20
#define F_ALLOWKBD 0x40
/***********************************************************/
/* Constants for TVfld_build_entry() and typedef FT_ENTRY */
/***********************************************************/
/* field types */
#define F_NONENTRY 0x00
#define F_MENUECHO 0x40
#define F_FILLIN 0x80
#define F_MENU 0xC0
/* field flags, OR with one of the above types */
#define F_SELECTED 2
#define F_MODIFIED 1
/* field modifiers for F_FILLIN (OR together) */
#define F_BEEP 0x80
#define F_NEXT 0x40
#define F_NUMBER 0x20
#define F_UPPER 0x10
#define F_CLEAR 0x08
/***********************************************************/
/* Other predefined constants */
/***********************************************************/
/* Predefined Message Numbers: */
#define OBJECT_MSG 0 /* Return Object Handle */
#define NEW_MSG 1 /* Create New Object */
#define FREE_MSG 2 /* Free Object */
#define ADDR_MSG 3 /* Return Handle of Object */
#define DIR_MSG 3 /* Get Panel File Directory */
#define READ_MSG 4 /* Return Next Logical record (I/O) */
#define APPLY_MSG 4 /* Apply Panel to Window Object */
#define WRITE_MSG 5 /* Write String to Object */
#define SIZE_MSG 8 /* Return Size of Object */
#define LEN_MSG 9 /* Return Length of Object */
#define ADDTO_MSG 10 /* Add To Value of Object */
#define SUBFROM_MSG 11 /* Subtract From Value of Object */
#define OPEN_MSG 12 /* Open Object for Use (I/O) */
#define CLOSE_MSG 13 /* Close Object (I/O) */
#define ERASE_MSG 14 /* Erase Object (I/O) */
#define STATUS_MSG 15 /* Return Status of Object (I/O) */
#define EOF_MSG 16 /* Return Object End of File Status (I/O) */
#define AT_MSG 17 /* Position Object Cursor (I/O) */
#define SETSCALE_MSG 17 /* Set Pointer Scaling Factors */
#define SETNAME_MSG 17 /* Assign name to mailbox */
#define READN_MSG 18 /* Return Next n Byte from Object (I/O) */
#define GETSCALE_MSG 18 /* Get Pointer Scaling Factors */
#define REDRAW_MSG 19 /* Redraw Object (WINDOW) */
#define SETICON_MSG 19 /* Specify Pointer Icon */
#define SETESC_MSG 20 /* Define User Escape */
#define LOCK_MSG 20 /* Request Exclusive Access */
/* Object Modifiers: */
#define TOS 0 /* Use Contents of Top of Stack as Object */
#define ME 1 /* Use Requesting Task's WINDOW as Object */
#define MAILTOS 2 /* Use MAILBOX(tos) as Object */
#define MAILME 3 /* Use MAILBOX(me) as Object */
#define KEYTOS 4 /* Use KEYBOARD(tos) as Object */
#define KEYME 5 /* Use KEYBOARD(me) as Object */
#define OBJQTOS 6 /* Use OBJECTQ(tos) as Object */
#define OBJQME 7 /* Use OBJECTQ(me) as Object */
/* the following are only for creating new objects */
#define WINDOW_CLASS 8 /* Use WINDOW Class as Object */
#define MAILBOX_CLASS 9 /* Use MAILBOX Class as Object */
#define KEYBOARD_CLASS 10 /* Use KEYBOARD Class as Object */
#define TIMER_CLASS 11 /* Use TIMER Class as Object */
#define POINTER_CLASS 15 /* Use POINTER Class as Object */
#define PANEL_CLASS 16 /* Use PANEL Class as Object */
/* Logical Text Attributes: */
#define NORMAL 1
#define NORMAL_HILITE 2
#define HELP 3
#define HELP_HILITE 4
#define ERROR 5
#define ERROR_HILITE 6
#define EMPHASIZED 7
#define MARK 8
/* ADD this to get reverse version of one of the above logical attributes */
#define REVERSE_VIDEO 8
/***********************************************************/
/* useful shorthands */
/***********************************************************/
#ifndef NIL
# define NIL (OBJECT) 0
#endif NIL
#ifndef FALSE
# define FALSE 0
#endif FALSE
#ifndef TRUE
# define TRUE !FALSE
#endif TRUE
/***********************************************************/
/* Type definitions used by library */
/***********************************************************/
typedef struct { /* send message parameter list */
WORD num_args; /* number of arguments */
DWORD arg[9]; /* 32-bit argument(s) */
} PARMLIST;
typedef struct {
WORD num_args ;
DWORD arg[1] ;
} PARMLIST1 ;
typedef struct {
WORD num_args ;
DWORD arg[2] ;
} PARMLIST2 ;
typedef struct {
WORD num_args ;
DWORD arg[3] ;
} PARMLIST3 ;
typedef struct {
WORD num_args ;
DWORD arg[4] ;
} PARMLIST4 ;
typedef struct {
WORD num_args ;
DWORD arg[8] ;
} PARMLIST8 ;
typedef struct
{
BYTE numfields ;
BYTE type ;
BYTE cursor_last ;
BYTE mouse_last ;
BYTE curr_attr ;
BYTE selected_attr ;
} FT_HEADER ;
typedef struct /* field table entry, one for each field on screen */
{
BYTE upleftrow, upleftcol, lowrightrow, lowrightcol ;
BYTE type ;
BYTE modifier ;
BYTE status ;
BYTE key2 ;
} FT_ENTRY ;
/*-------------------------------------------------------*/
/* format of message which is sent on async notification */
/* ANY module using this MUST have alignment set to byte */
/* (-a- for TCC) */
typedef struct
{
BYTE event ; /* which event happened? */
union {
struct /* window was moved */
{
OBJECT window ;
char row ;
char col ;
} movement ;
struct /* window was resized */
{
OBJECT window ;
BYTE rows ;
BYTE cols ;
} resizing ;
struct /* window was scrolled */
{
OBJECT window ;
char mouse_row ;
char mouse_col ;
char unknown ;
SBYTE amount ;
} scrolling ;
struct /* window was requested to close */
{
OBJECT window ;
char mouse_row ;
char mouse_col ;
char unknown ;
} closing ;
struct /* help requested on window */
{
OBJECT window ;
char mouse_row ;
char mouse_col ;
char unknown ;
} help ;
BYTE video_mode ; /* video mode changed */
struct /* scissors selected */
{
OBJECT window ;
BYTE up_left_row ;
BYTE up_left_col ;
char unknown ;
OBJECT mailbox ;
BYTE height ;
BYTE width ;
} scissors ;
} msg ;
BYTE pad ; /* needed for TVreadmail() */
} NOTIFY_MSG ;
/*-------------------------------------------------------*/
/* format of messages read from a pointer object */
typedef struct
{
int row ;
int column ;
BYTE button_state ;
} POINTER_MSG ;
/***********************************************************/
/* low-level functions which should not be called directly */
/***********************************************************/
void far pascal _TVnotify_handler(void) ;
void far pascal _TVinterrupt_handler(void) ;
void pascal _TV_object_free(OBJECT obj) ;
void pascal _TV_object_close(OBJECT obj) ;
/***********************************************************/
/* the DESQview SEND interface glue functions */
/***********************************************************/
void pascal TVsendmsg(WORD msg_num,WORD modifier,OBJECT object_hdl,PARMLIST far *msg_args) ;
void pascal TVsendmsg0(WORD msg_num,WORD modifier,OBJECT object_hdl) ;
DWORD pascal TVsendmsg1(WORD msg_num,WORD modifier,OBJECT object_hdl) ;
/***********************************************************/
/* support functions which guard non-reentrant functions */
/***********************************************************/
void *_TV_malloc(size_t size) ;
void *_TV_calloc(size_t nitems, size_t size) ;
void *_TV_realloc(void *block, size_t size) ;
void _TV_free(void *block) ;
/***********************************************************/
/* the API function calls */
/***********************************************************/
int pascal TVinit(void) ;
void pascal TVexit(void) ;
int pascal DVinit(void) ;
void pascal DVexit(void) ;
WORD pascal DVprogname(void) ;
int pascal DVappnum(void) ;
void pascal DVdbgpoke(char c) ;
void pascal DVapilevel(int level, int mod) ;
WORD pascal DVpushkey(int key, int scancode) ;
void pascal DVjustify(int justify) ;
void pascal DVcommon_mem(WORD *avail, WORD *largest, WORD *total) ;
void pascal DVconv_mem(WORD *avail, WORD *largest, WORD *total) ;
void pascal DVexp_mem(WORD *avail, WORD *largest, WORD *total) ;
WORD pascal DVver(void) ;
OBJECT pascal DVapp_start(void *pif, int pif_size) ;
void pascal TVpanel_open(OBJECT panel, char *file) ;
void pascal TVwin_stream(OBJECT window,BYTE *stream) ;
OBJECT pascal TVwin_new(OBJECT window,int rows,int cols) ;
OBJECT pascal TVmbx_sender(OBJECT mbx) ;
void pascal TVmbx_clear(OBJECT mbx) ;
void pascal TVmbx_close(OBJECT mbx) ;
int pascal TVmbx_eof(OBJECT mbx) ;
OBJECT pascal TVmbx_find(char *name) ;
void pascal TVmbx_free(OBJECT mbx) ;
OBJECT pascal TVmymbx(void) ;
OBJECT pascal TVmbxof(OBJECT task) ;
void pascal TVmbx_name(OBJECT mbx,char *name) ;
OBJECT pascal TVmbx_new(void) ;
void pascal TVmbx_open(OBJECT mbx) ;
int pascal TVreadmail(OBJECT mbx,char *buffer,int maxsize) ;
void pascal TVsendmail(OBJECT mbx,char *msg,int length) ;
void pascal TVmbx_write(OBJECT mbx,int reference,int status,char *msg,int length) ;
int pascal TVmbx_size(OBJECT mbx) ;
int pascal TVmbx_status(OBJECT mbx) ;
int pascal TVwin_read(OBJECT win,void *buffer,int maxsize) ;
int pascal TVwin_nread(OBJECT win,void *buffer,int n) ;
void pascal TVfld_attr(OBJECT win,int field,int attr) ;
void pascal TVfld_char(OBJECT win,int field,int c) ;
void pascal TVfld_clear(OBJECT win,int field) ;
void pascal TVfld_cursor(OBJECT win,int field) ;
void pascal TVfld_entry(OBJECT win,int field,FT_ENTRY *entry) ;
void pascal TVfld_header(OBJECT win,FT_HEADER *header) ;
void pascal TVfld_scroll(OBJECT win,int fld,int direction) ;
int pascal TVfld_swrite(OBJECT win,int field,char *s) ;
void pascal TVfld_type(OBJECT win,int fld,int type) ;
int pascal TVfld_write(OBJECT win,int field,char *s) ;
int pascal TVqry_field(OBJECT win,int fld,int bufsize,char *buffer) ;
void pascal TVqry_entry(OBJECT win,int fld,FT_ENTRY *entry) ;
void pascal TVqry_header(OBJECT win,FT_HEADER *header) ;
unsigned int pascal TVqry_fieldsize(OBJECT win,int fld) ;
int pascal TVqry_type(OBJECT win,int fld) ;
void pascal TVgetbuf(OBJECT win,char far **buffer, int *size, int *flag) ;
void pascal TVtimer_begin(OBJECT timer, DWORD time) ;
void pascal TVtimer_start(OBJECT timer) ;
void pascal TVtimer_stop(OBJECT timer) ;
void pascal TVtimer_set(OBJECT timer,int hour,int minute,int second,int hundredth) ;
DWORD pascal TVtimer_elapsed(OBJECT timer) ;
DWORD pascal TVtimer_len(OBJECT timer) ;
DWORD pascal TVtimer_wait(OBJECT timer) ;
OBJECT pascal TVtimer_new(void) ;
int pascal TVtimer_status(OBJECT timer) ;
WORD pascal TVgetbit(void far (*handler)(void)) ;
void pascal TVfreebit(WORD bit) ;
void pascal TVsetbit(WORD bit) ;
int pascal TVisobj(OBJECT obj) ;
void pascal TVapp_goback(OBJECT win) ;
void pascal TVapp_gofore(OBJECT win) ;
void pascal TVapp_free(OBJECT win) ;
void pascal TVapp_hide(OBJECT win) ;
void pascal TVapp_show(OBJECT win) ;
void pascal TVapp_suspend(OBJECT win) ;
void pascal TVkbd_setflags(OBJECT kbd,int flags) ;
void pascal TVkbd_clrflags(OBJECT kbd,int flags) ;
void pascal TVkbd_clear(OBJECT kbd) ;
void pascal TVkbd_close(OBJECT kbd) ;
void pascal TVkbd_setesc(OBJECT kbd,void far (*func)(void)) ;
void pascal TVkbd_free(OBJECT kbd) ;
void pascal TVkbd_open(OBJECT kbd,OBJECT win) ;
void pascal TVkbd_write(OBJECT kbd,char *data,int size,int scancode) ;
OBJECT pascal TVmykbd(void) ;
OBJECT pascal TVkbdof(OBJECT task) ;
OBJECT pascal TVkbd_new(void) ;
int pascal TVkbd_read(OBJECT kbd,char *buffer,int maxsize) ;
int pascal TVkbd_messages(OBJECT kbd) ;
int pascal TVkbd_status(OBJECT kbd) ;
int pascal TVerrormsg(OBJECT win, char *string,int tone,int button,int rows,int cols) ;
OBJECT pascal TVlocate(OBJECT win,int row,int col) ;
void pascal TVlock(OBJECT mbx) ;
void pascal TVwin_allow(OBJECT win,int command) ;
void pascal TVwin_disallow(OBJECT win,int command) ;
void pascal TVwin_async(OBJECT win,void far (*func)(void)) ;
void pascal TVwin_notify(OBJECT win,int event) ;
void pascal TVwin_cancel(OBJECT win,int event) ;
void pascal TVwin_bottom(OBJECT win) ;
void far * pascal TVgetmem(unsigned amt) ;
void pascal TVputmem(void far *block) ;
void pascal TVforeonly(OBJECT taskwin,int foreonly) ;
void pascal TVwin_minsize(OBJECT win,int rows,int cols) ;
void pascal TVwin_maxsize(OBJECT win,int rows,int cols) ;
void cdecl TVwin_reorder(OBJECT win,unsigned first,...) ;
void pascal TVwin_top(OBJECT win) ;
void pascal TVwin_topsys(OBJECT win) ;
void pascal TVobq_add(OBJECT obq, OBJECT item) ;
OBJECT pascal TVobject(WORD which) ;
int pascal TVobq_size(OBJECT obq) ;
DWORD pascal TVobq_status(OBJECT obq) ;
void pascal TVobq_clear(OBJECT obq) ;
void pascal TVobq_close(OBJECT obq) ;
OBJECT pascal TVmyobq(void) ;
OBJECT pascal TVobqof(OBJECT task) ;
void pascal TVobq_open(OBJECT obq) ;
OBJECT pascal TVobq_read(OBJECT obq) ;
void pascal TVobq_remove(OBJECT obq, OBJECT item) ;
OBJECT pascal TVpanel_new(void) ;
DWORD pascal TVpanel_status(OBJECT panel) ;
int pascal TVpanel_size(OBJECT panel) ;
void pascal TVptr_open(OBJECT pointer, OBJECT win) ;
void pascal TVptr_erase(OBJECT pointer) ;
void pascal TVptr_icon(OBJECT pointer, char symbol) ;
OBJECT pascal TVptr_new(void) ;
void pascal TVptr_setflags(OBJECT pointer,WORD flags) ;
int pascal TVptr_messages(OBJECT pointer) ;
DWORD pascal TVptr_status(OBJECT pointer) ;
void pascal TVptr_clrflags(OBJECT pointer,WORD flags) ;
void pascal TVptr_goto(OBJECT ptr,int row,int col) ;
void pascal TVptr_setscale(OBJECT ptr,int rows,int cols) ;
void pascal TVptr_getscale(OBJECT ptr,int *rows,int *cols) ;
int pascal TVptr_read(OBJECT win,POINTER_MSG *msg) ;
void pascal TVposwin(OBJECT win, OBJECT parent, int pos, int row_offset, int col_offset) ;
void pascal TVputchar(OBJECT win, int c, int attribute) ;
void pascal TVwin_point(OBJECT win,OBJECT ptr) ;
int pascal TVqry_attr(OBJECT win) ;
int pascal TVqry_color(OBJECT win,int attr) ;
int pascal TVqry_ctrl(OBJECT win) ;
void pascal TVqry_cursor(OBJECT win,int *row, int *col) ;
int pascal TVqry_frattr(OBJECT win) ;
int pascal TVqry_frame(OBJECT win) ;
int pascal TVqry_hidden(OBJECT win) ;
int pascal TVqry_logattr(OBJECT win) ;
int pascal TVqry_leave(OBJECT win) ;
void pascal TVqry_lsize(OBJECT win,int *rows, int *cols) ;
void pascal TVqry_origin(OBJECT win,int *row, int *col) ;
void pascal TVqry_position(OBJECT win,int *row, int *col) ;
void pascal TVqry_size(OBJECT win,int *rows,int *cols) ;
void far *TVshadow(void) ;
void far *DVshadow_start(int *rows,int *cols) ;
void DVshadow_stop(void) ;
void TVupdate(void far *first, WORD count) ;
void pascal TVsleep(DWORD time) ;
void pascal TVsound(int freq, int duration) ;
void pascal TVtask_free(OBJECT task) ;
OBJECT pascal TVmytask(void) ;
void pascal TVinterrupt(OBJECT task,void far (*func)(void)) ;
OBJECT pascal TVtask_new(OBJECT parent,char *title,int row,int col,int rows,int cols,char *stack,int stacksize,void (*startaddr)(int),int switch_menu) ;
OBJECT cdecl TVapp_new(OBJECT win,int row,int col,int rows,int cols,int switch_menu,char *program, ...) ;
void pascal TVtask_post(OBJECT task) ;
void pascal TVtask_start(OBJECT task) ;
void pascal TVtask_stop(OBJECT task) ;
WORD pascal TVver(void) ;
void pascal TVwin_attach(OBJECT win) ;
void pascal TVwin_detach(OBJECT win) ;
void pascal TVwin_attr(OBJECT win,int attr) ;
void pascal TVwin_clear(OBJECT win) ;
void pascal TVwin_color(OBJECT win,int logattr,int physattr) ;
void pascal TVwin_ctrl(OBJECT win,int ctrl) ;
void pascal TVwin_cursor(OBJECT win,int row,int col) ;
int pascal TVwin_eof(OBJECT win) ;
void pascal TVwin_frattr(OBJECT win,int attr) ;
void pascal TVwin_fill(OBJECT win,char c) ;
void pascal TVwin_frame(OBJECT win,int frame) ;
void pascal TVwin_free(OBJECT win) ;
OBJECT pascal TVmywindow(void) ;
void pascal TVwin_hide(OBJECT win) ;
void pascal TVwin_unhide(OBJECT win) ;
OBJECT pascal TVcreate_window(OBJECT win,char *title,int rows,int cols, int system_mem, DWORD unknown) ;
void pascal TVwin_logattr(OBJECT win,int logical) ;
void pascal TVwin_leave(OBJECT win, int leave) ;
void pascal TVwin_lsize(OBJECT win,int rows,int cols) ;
void pascal TVwin_move(OBJECT win,int row,int col) ;
void pascal TVwin_origin(OBJECT win,int row,int col) ;
void pascal TVredrawwin(OBJECT win) ;
int cdecl TVwin_printf(OBJECT win,char *format, ...) ;
void pascal TVwin_redraw(OBJECT win) ;
void pascal TVwin_repattr(OBJECT win,int attr,int count) ;
void pascal TVwin_repchar(OBJECT win,int c,int count) ;
void pascal TVwin_resize(OBJECT win,int rows,int cols) ;
int pascal TVwin_size(OBJECT win) ;
void pascal TVwin_scroll(OBJECT win,int top,int left,int height,int width, int direction) ;
void pascal TVwin_swrite(OBJECT win,char *string) ;
void pascal TVwin_title(OBJECT win,char *title) ;
int pascal TVwin_width(OBJECT win) ;
void pascal TVwin_writea(OBJECT win,char *attr,int len) ;
void pascal TVwin_writeca(OBJECT win,char *chars,char *attr,int len) ;
void pascal TVwin_write(OBJECT win,char *string,int len) ;
void pascal TVqry_title(OBJECT win,char *title,int size) ;
void pascal TVwin_atread(OBJECT win,int read_attr) ;
int pascal TVqry_atread(OBJECT win) ;
void pascal TVwin_gotoxy(OBJECT win,int x,int y) ;
int pascal TVkbd_getc(OBJECT kbd) ;
void pascal TVfld_point(OBJECT win,int fld,int x,int y) ;
void pascal TVfld_reset(OBJECT win) ;
void pascal TVfld_altmode(OBJECT kbd,int altmode) ;
BYTE * pascal TVfld_build_header(int num_fields,int screen_type,int curr_attr,int selected_attr) ;
void pascal TVfld_build_entry(BYTE *stream,int field,int upleftrow,int upleftcol,
int lowrightrow,int lowrightcol,int type,int modifier,
int color,int key2) ;
void pascal TVfld_build_color(BYTE *stream,int field,int attr) ;
void pascal TVfld_marker(OBJECT win,char marker) ;
int pascal TVqry_kmouse(void);
void pascal TVapi_kmouse(int active) ;
char far * pascal TVpanel_dir(OBJECT panel,int *size) ;
void pascal TVpanel_apply(OBJECT panel,char *name,OBJECT window) ;